1. Field of the Invention
The present invention relates to an apparatus and method for applying revision information to software in a system that dynamically assigns software to a plurality of servers to perform customer services.
2. Description of the Related Art
A system that makes effective use of computer resources by dynamically assigning a plurality of computer resources to a plurality of customers in a data center that has a network environment and maintains and manages a computer system has been proposed in the recent years. Enumerated as such a system are Autonomic Computing of IBM (International Business Machine Corporation), Utility Data Center of HP (Hewlett-Packard Company) and N1 of Sun Microsystems, Inc.
Enumerated as computer resources are hardware such as a CPU (central processing unit), network apparatus as well as software such as an operating system (OS) and application programs (hereinafter referred to as “applications”). Included in the software are not only programs for OS and applications but also data used by the programs.
FIG. 1 shows which version of each customer's software is operating in each server in such a system. In this example, the servers S1 to S3 are assigned to customer A, the servers S5 and S6 are assigned to customer B, and the server S7 is assigned to Customer C.
In the server S1, for example, operating system OS1 and application AP1 are operating as the system of customer A, and in the server S6, operating system OS2 and database DB2 are operating as the system of customer B. In the server S7, operating system OS1 and database DB2 are operating as the system of customer C. In the server S4, nothing is operating and this server is unused. The system of any of the customers can be operated by the server S4 depending on certain circumstances.
The system in which a plurality of customers share a plurality of servers to dynamically change the operating state is a new system, and a new method is also required for the maintenance and operation of the resources. With regard to the software in particular, since revision information (patch) is provided by a vendor from time to time, it is necessary to apply such a patch to the system each time it is provided in order to maintain and manage the system.
In a conventional maintenance and operation method, an operator of a data center performs maintenance manually. For example, resource information on the system is managed in the form of a table, and when revision information for the resources is provided by a vendor, the operator analyzes the information and compares the system configuration designated by the vendor and the present system configuration, and then decides whether he should apply the revision information to the resources In fact, in most of conventional maintenance and operation methods, when revision information is applied to the resources, the operator stops the operation of a customer's system at the timing that has been determined between the customer and the data center in advance (for example, twice a week in the middle of the night, say, 1:00 to 3:00 AM), and carries out the revision work manually.
A system that supports the application of program revision to a single customer's system has been also proposed. (Refer to patent document 1, for example.) Patent document 1: Japanese laid-open patent publication No. 2000-10766
However, there are the following problems in the above-mentioned conventional maintenance and operation system. It is not possible to apply a patch to the resources that have already been assigned as a customer service and are actually operating, and there is a danger that the operation of the system must be stopped in order to apply the patch to the resources.
Moreover, if the number of resources becomes large, it is impossible to easily know which software has become which version. Even though an emergency patch is issued to a certain application, it takes time to investigate to which software the emergency patch must be applied. In other words, there is no systematic means for knowing what level of new versions of applications are operating and how safe they are for each of the large number of resources.
Consequently, such a system that can manage which software is operating at which server in a unified manner and can automate up to the updating of software has not yet been realized. However, when the number of servers becomes large, the operator cannot manage them within his ability any more, so that the functionality in which the system itself can automatically manage such a large number of servers will be inevitably required in the future.
Furthermore, it is not necessary to apply a patch to all the software. Any trouble may occur by applying the most up-to-date patch depending on the customized contents of a customer's system. Thus, a functionality that appropriately judges whether a patch should be applied to the software or not is also required.